trigger Add_Default_Services on IT_Hardware_Request__c (after insert) {

    IT_Service_Request__c[] ServiceRequest = new IT_Service_Request__c[]{};
                
    for (IT_Hardware_Request__c hr : Trigger.new){

        // Get the standard Services associated with the Hardware item
        //
        IT_Standard_Hardware_Services__c[] StandardServicesList = [Select ss.IT_Service_Item__c From IT_Standard_Hardware_Services__c ss WHERE ss.IT_Hardware_Item__c = :hr.IT_Hardware__c];
                
        // Add Standard services to Service Request Object
        //
        for (IT_Standard_Hardware_Services__c StandardService : StandardServicesList){
            ServiceRequest.add(new IT_Service_Request__c(
                     IT_Service__c = StandardService.IT_Service_Item__c, 
                     IT_Request__c = hr.IT_Request__c
            ));
        }
    }
    // Do batch inserts outside of the trigger.new loop so we remain within execution limits
    //
    try {
        // Insert IT_Service_Request__c
        //
        Database.SaveResult[] InsertResult = Database.Insert(ServiceRequest, true);
    }
    catch (Exception e){
        // Catch exceptions
        //
        System.debug('Error inserting Service_Requests\n' +e);
    }    
}